home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / print / PrintServiceLookup.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  4.3 KB  |  243 lines

  1. package javax.print;
  2.  
  3. import java.security.AccessController;
  4. import java.security.PrivilegedActionException;
  5. import java.util.ArrayList;
  6. import javax.print.attribute.AttributeSet;
  7. import sun.awt.AppContext;
  8.  
  9. public abstract class PrintServiceLookup {
  10.    private static Services getServicesForContext() {
  11.       Services var0 = (Services)AppContext.getAppContext().get(Services.class);
  12.       if (var0 == null) {
  13.          var0 = new Services();
  14.          AppContext.getAppContext().put(Services.class, var0);
  15.       }
  16.  
  17.       return var0;
  18.    }
  19.  
  20.    private static ArrayList getListOfLookupServices() {
  21.       return javax.print.PrintServiceLookup.Services.access$000(getServicesForContext());
  22.    }
  23.  
  24.    private static ArrayList initListOfLookupServices() {
  25.       ArrayList var0 = new ArrayList();
  26.       javax.print.PrintServiceLookup.Services.access$002(getServicesForContext(), var0);
  27.       return var0;
  28.    }
  29.  
  30.    private static ArrayList getRegisteredServices() {
  31.       return javax.print.PrintServiceLookup.Services.access$100(getServicesForContext());
  32.    }
  33.  
  34.    private static ArrayList initRegisteredServices() {
  35.       ArrayList var0 = new ArrayList();
  36.       javax.print.PrintServiceLookup.Services.access$102(getServicesForContext(), var0);
  37.       return var0;
  38.    }
  39.  
  40.    public static final PrintService[] lookupPrintServices(DocFlavor var0, AttributeSet var1) {
  41.       ArrayList var2 = getServices(var0, var1);
  42.       return (PrintService[])var2.toArray(new PrintService[var2.size()]);
  43.    }
  44.  
  45.    public static final MultiDocPrintService[] lookupMultiDocPrintServices(DocFlavor[] var0, AttributeSet var1) {
  46.       ArrayList var2 = getMultiDocServices(var0, var1);
  47.       return (MultiDocPrintService[])var2.toArray(new MultiDocPrintService[var2.size()]);
  48.    }
  49.  
  50.    public static final PrintService lookupDefaultPrintService() {
  51.       for(PrintServiceLookup var1 : getAllLookupServices()) {
  52.          try {
  53.             PrintService var2 = var1.getDefaultPrintService();
  54.             if (var2 != null) {
  55.                return var2;
  56.             }
  57.          } catch (Exception var3) {
  58.          }
  59.       }
  60.  
  61.       return null;
  62.    }
  63.  
  64.    public static boolean registerServiceProvider(PrintServiceLookup var0) {
  65.       synchronized(PrintServiceLookup.class) {
  66.          for(Object var3 : getAllLookupServices()) {
  67.             try {
  68.                if (var3.getClass() == var0.getClass()) {
  69.                   boolean var10000 = false;
  70.                   return var10000;
  71.                }
  72.             } catch (Exception var5) {
  73.             }
  74.          }
  75.  
  76.          getListOfLookupServices().add(var0);
  77.          return true;
  78.       }
  79.    }
  80.  
  81.    public static boolean registerService(PrintService var0) {
  82.       synchronized(PrintServiceLookup.class) {
  83.          if (var0 instanceof StreamPrintService) {
  84.             return false;
  85.          } else {
  86.             ArrayList var2 = getRegisteredServices();
  87.             if (var2 == null) {
  88.                var2 = initRegisteredServices();
  89.             } else if (var2.contains(var0)) {
  90.                return false;
  91.             }
  92.  
  93.             var2.add(var0);
  94.             return true;
  95.          }
  96.       }
  97.    }
  98.  
  99.    public abstract PrintService[] getPrintServices(DocFlavor var1, AttributeSet var2);
  100.  
  101.    public abstract PrintService[] getPrintServices();
  102.  
  103.    public abstract MultiDocPrintService[] getMultiDocPrintServices(DocFlavor[] var1, AttributeSet var2);
  104.  
  105.    public abstract PrintService getDefaultPrintService();
  106.  
  107.    private static ArrayList getAllLookupServices() {
  108.       synchronized(PrintServiceLookup.class) {
  109.          ArrayList var1 = getListOfLookupServices();
  110.          if (var1 != null) {
  111.             return var1;
  112.          } else {
  113.             var1 = initListOfLookupServices();
  114.  
  115.             try {
  116.                AccessController.doPrivileged(new 1());
  117.             } catch (PrivilegedActionException var4) {
  118.             }
  119.  
  120.             return var1;
  121.          }
  122.       }
  123.    }
  124.  
  125.    private static ArrayList getServices(DocFlavor var0, AttributeSet var1) {
  126.       ArrayList var2 = new ArrayList();
  127.  
  128.       for(PrintServiceLookup var4 : getAllLookupServices()) {
  129.          try {
  130.             PrintService[] var5 = null;
  131.             if (var0 == null && var1 == null) {
  132.                try {
  133.                   var5 = var4.getPrintServices();
  134.                } catch (Throwable var8) {
  135.                }
  136.             } else {
  137.                var5 = var4.getPrintServices(var0, var1);
  138.             }
  139.  
  140.             if (var5 != null) {
  141.                for(int var6 = 0; var6 < var5.length; ++var6) {
  142.                   var2.add(var5[var6]);
  143.                }
  144.             }
  145.          } catch (Exception var9) {
  146.          }
  147.       }
  148.  
  149.       ArrayList var10 = null;
  150.  
  151.       try {
  152.          SecurityManager var11 = System.getSecurityManager();
  153.          if (var11 != null) {
  154.             var11.checkPrintJobAccess();
  155.          }
  156.  
  157.          var10 = getRegisteredServices();
  158.       } catch (SecurityException var7) {
  159.       }
  160.  
  161.       if (var10 != null) {
  162.          PrintService[] var12 = (PrintService[])var10.toArray(new PrintService[var10.size()]);
  163.  
  164.          for(int var13 = 0; var13 < var12.length; ++var13) {
  165.             if (!var2.contains(var12[var13])) {
  166.                if (var0 == null && var1 == null) {
  167.                   var2.add(var12[var13]);
  168.                } else if ((var0 != null && var12[var13].isDocFlavorSupported(var0) || var0 == null) && null == var12[var13].getUnsupportedAttributes(var0, var1)) {
  169.                   var2.add(var12[var13]);
  170.                }
  171.             }
  172.          }
  173.       }
  174.  
  175.       return var2;
  176.    }
  177.  
  178.    private static ArrayList getMultiDocServices(DocFlavor[] var0, AttributeSet var1) {
  179.       ArrayList var2 = new ArrayList();
  180.  
  181.       for(PrintServiceLookup var4 : getAllLookupServices()) {
  182.          try {
  183.             MultiDocPrintService[] var5 = var4.getMultiDocPrintServices(var0, var1);
  184.             if (var5 != null) {
  185.                for(int var6 = 0; var6 < var5.length; ++var6) {
  186.                   var2.add(var5[var6]);
  187.                }
  188.             }
  189.          } catch (Exception var10) {
  190.          }
  191.       }
  192.  
  193.       ArrayList var11 = null;
  194.  
  195.       try {
  196.          SecurityManager var12 = System.getSecurityManager();
  197.          if (var12 != null) {
  198.             var12.checkPrintJobAccess();
  199.          }
  200.  
  201.          var11 = getRegisteredServices();
  202.       } catch (Exception var9) {
  203.       }
  204.  
  205.       if (var11 != null) {
  206.          PrintService[] var13 = (PrintService[])var11.toArray(new PrintService[var11.size()]);
  207.  
  208.          for(int var14 = 0; var14 < var13.length; ++var14) {
  209.             if (var13[var14] instanceof MultiDocPrintService && !var2.contains(var13[var14])) {
  210.                if (var0 != null && var0.length != 0) {
  211.                   boolean var7 = true;
  212.  
  213.                   for(int var8 = 0; var8 < var0.length; ++var8) {
  214.                      if (!var13[var14].isDocFlavorSupported(var0[var8])) {
  215.                         var7 = false;
  216.                         break;
  217.                      }
  218.  
  219.                      if (var13[var14].getUnsupportedAttributes(var0[var8], var1) != null) {
  220.                         var7 = false;
  221.                         break;
  222.                      }
  223.                   }
  224.  
  225.                   if (var7) {
  226.                      var2.add(var13[var14]);
  227.                   }
  228.                } else {
  229.                   var2.add(var13[var14]);
  230.                }
  231.             }
  232.          }
  233.       }
  234.  
  235.       return var2;
  236.    }
  237.  
  238.    // $FF: synthetic method
  239.    static ArrayList access$200() {
  240.       return getListOfLookupServices();
  241.    }
  242. }
  243.